package fish;



import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;

import javax.imageio.ImageIO;
//鱼
//让Fish类继承Thread,有并发功能，多线程
public class Fish extends Thread{

//	特征
	BufferedImage type;//种类--不同图片决定
	int width;//大小
	int height;
	int x;//位置
	int y;
	int step;//速度1-5随机
	//动画效果--10张图片--数组
	BufferedImage[] imgs=new BufferedImage[10];//数组只有大小没有内容
	
	
//	构造方法--对特征赋值
	public Fish(String s)//表示创建类型
	{
		try
		{
			type=ImageIO.read(new File("images/"+s+"_00.png"));
			width=type.getWidth();//图片实际大小
			height=type.getHeight();
			//初始位置赋值
			Random r=new Random();
			x=1000;
			y=r.nextInt(800-height);
			//随机数给step赋值
			step=r.nextInt(5)+1;//0~4	+1	1~5
			//往数组中存图片--循环，放入数组存储
			for (int i = 0; i < imgs.length; i++)
			{
				imgs[i]=ImageIO.read(new File("images/"+s+"_0"+i+".png"));
			}
			
		} catch (IOException e)
		{
			System.out.println("鱼图片读取有误");
		}
		
	}
	
	int index=0;//表示访问数组下标
//	行为--方法
	//调出run方法--鱼游的行为(1、直线游2、动画效果)
	public void run()
	{
		while (true)//鱼一直游
		{
//			1、
			//x--;
			x=x-step;
//			2、从数组中取
			type=imgs[index];
			index++;//取值0~9
			if (index==10)
			{
				index=0;
			}
			//判断鱼是否会游出池塘
			if (x<=-width)//成立，鱼游出池塘
			{
				x=1000;//鱼重新出现
				//创建随机数
				Random r=new Random();
				y=r.nextInt(900-height);//范围[0,800-height)
				step=r.nextInt(5)+1;//游动速度随机
			}
//			System.out.println(step);
			try
			{
				Thread.sleep(120);//让线程睡眠1秒钟
			} catch (InterruptedException e)
			{
				e.printStackTrace();
			}
			
		}
		
	}
			
}
